#include "ai_recognition.h"
#include <QList>
#include <QRect>

#include "qdebug.h"

void AIRecogManager::addAudioRecognition(SubtitleItem item) {
    audioRecognitions.append(item);
}

QList<SubtitleItem> AIRecogManager::getAudioRecognitions(QDateTime startTime, QDateTime endTime) {
    QList<SubtitleItem> result;

    // qDebug() << "current start: " << startTime.toString("yyyy-MM-dd hh:mm:ss.zzz");
    // qDebug() << "current end: " << endTime.toString("yyyy-MM-dd hh:mm:ss.zzz");
    // 遍历所有音频识别数据，根据时间段进行过滤
    for (const SubtitleItem& audioRecognition : audioRecognitions) {
        // 将时间戳转化为秒数进行比较
        QDateTime audioTime = audioRecognition.timestamp;
        if (audioTime >= startTime && audioTime <= endTime) {
            result.append(audioRecognition);
        }
    }

    return result;
}

void AIRecogManager::addAIAction(QDateTime timestamp, const QString& action, const cv::Mat& image, const std::vector<DL_RESULT>& results) {
    // 创建 AIAction 对象并填充数据
    AIAction aiAction;
    aiAction.action = action;
    aiAction.image = image;
    aiAction.results = results;

    // 将 AIAction 对象加入到 aiActions 列表中
    aiActions.append(aiAction);
}

QList<AIAction> AIRecogManager::getAIActions(QDateTime startTime, QDateTime endTime) {
    QList<AIAction> result;

    // 遍历所有 AI 识别行为数据，根据时间段进行过滤
    for (const AIAction& aiAction : aiActions) {
        // 假设 AIAction 中有一个字段表示行为的时间戳，使用相同的时间戳格式处理
        QDateTime actionTime = QDateTime::fromString(aiAction.action, "yyyy-MM-dd hh:mm:ss.zzz");
        if (actionTime >= startTime && actionTime <= endTime) {
            result.append(aiAction);
        }
    }

    return result;
}
